#include <iostream>
#include "Poco/Net/MailMessage.h"
#include "Poco/Net/MailRecipient.h"
#include "Poco/Net/SMTPClientSession.h"
#include "Poco/Net/StringPartSource.h"
#include "Poco/Path.h"
#include "Poco/Exception.h"
#include <Poco/DateTime.h>
#include "Poco/Net/StringPartSource.h"
#include "Poco/Net/MailRecipient.h"
#include "Poco/Net/MailMessage.h"
#include "Poco/Net/Context.h"
#include "Poco/Net/SecureSMTPClientSession.h"
#include "Poco/Exception.h"

int sendMail(int argc, char const *argv[])
{

    std::string mailuser("1345411683@qq.com");
    std::string msgText("卡号验证失败：123456789");
    std::string mailhost("smtp.qq.com");
    std::string mailpasswd("zcrwhgymrybkffje");
    std::string mailrecipient("2437248368@qq.com");
    try
    {
        // 发送邮件通知
        // 发送的消息内容
        Poco::Net::MailMessage message;
        message.setSubject("门禁验证失败通知");
        message.setDate(Poco::DateTime().timestamp());
        message.addContent(new Poco::Net::StringPartSource(msgText, "text/plain"));
        message.setSender(mailuser);
        message.addRecipient(Poco::Net::MailRecipient(Poco::Net::MailRecipient::BCC_RECIPIENT, mailrecipient));
        // 开始发送邮件
        // 第一个是非SSL连接的，第二个是SSL连接的
        Poco::Net::SMTPClientSession smtpSession(mailhost);
        // Poco::Net::SecureSMTPClientSession smtpSession(mailhost);
        smtpSession.open();
        // 下面两行是SSL连接必须的
        // smtpSession.login();
        // 登录邮件服务
        smtpSession.login(Poco::Net::SMTPClientSession::LoginMethod::AUTH_LOGIN, mailuser, mailpasswd);
        // 发送出邮件内容
        smtpSession.sendMessage(message);
        // 发送后关闭会话
        smtpSession.close();
    }
    catch (const Poco::Exception &e)
    {
        std::cerr << e.displayText() << '\n';
    }

    return 0;
}
